import os
import sys

def resource_path(relative_path):
    """
    获取资源的绝对路径，适用于开发环境和PyInstaller打包后的环境
    
    Args:
        relative_path: 相对于应用程序根目录的资源路径
        
    Returns:
        资源的绝对路径
    """
    try:
        # 检查是否在PyInstaller打包环境中
        if hasattr(sys, '_MEIPASS'):
            # 在打包环境中，使用exe所在目录
            base_path = os.path.dirname(sys.executable)
        else:
            # 如果不是打包环境，则使用当前目录
            base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
    except Exception:
        # 出现异常时使用当前目录
        base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
    
    return os.path.join(base_path, relative_path)